function [recon_cs_ref, recon_cs_venc, recon_cs_ref_zf, recon_cs_venc_zf] = GROGGRASP_demo(kdata,N_spoke,LP_use)

    kdata = single(kdata);
    nt1 = size(kdata,3);
    [y_ref,b1,mask,Weighting,SG,ref_ref] =  GROG_reconstruction_Preprocessing_N_ref_demo(kdata(:,:,:,:,1), N_spoke,nt1);
    [y_venc] =  GROG_reconstruction_Preprocessing_N_venc_demo(kdata(:,:,:,:,2), N_spoke,nt1);
    [recon_cs_ref,recon_cs_ref_zf] = GROG_reconstruction_CS_demo(y_ref,b1,Weighting,mask,SG,LP_use,ref_ref);
    recon_cs_ref = gather(recon_cs_ref);
    recon_cs_ref_zf = gather(recon_cs_ref_zf);    
    [recon_cs_venc,recon_cs_venc_zf] = GROG_reconstruction_CS_demo(y_venc,b1,Weighting,mask,SG,LP_use,ref_ref);
    recon_cs_venc = gather(recon_cs_venc);
    recon_cs_venc_zf = gather(recon_cs_venc_zf);
    
